package com.tarena.lbs.util;

import java.util.UUID;

public class CommonUtil {

    /**
     * 生成唯一ID
     */
    public static String generateUUID() {
        return UUID.randomUUID().toString().replaceAll("-", "");
    }

    /**
     * 计算两点之间的距离（Haversine公式）
     */
    public static double calculateDistance(double lat1, double lng1, double lat2, double lng2) {
        // 地球半径，单位千米
        final double EARTH_RADIUS = 6371.0;

        // 将角度转换为弧度
        double radLat1 = Math.toRadians(lat1);
        double radLat2 = Math.toRadians(lat2);
        double a = radLat1 - radLat2;
        double b = Math.toRadians(lng1) - Math.toRadians(lng2);

        // Haversine公式
        double s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a/2), 2) +
                Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b/2), 2)));
        s = s * EARTH_RADIUS;
        s = Math.round(s * 10000) / 10000; // 保留4位小数

        return s;
    }

    /**
     * 检查字符串是否为空
     */
    public static boolean isEmpty(String str) {
        return str == null || str.trim().length() == 0;
    }

    /**
     * 检查字符串是否不为空
     */
    public static boolean isNotEmpty(String str) {
        return !isEmpty(str);
    }
}
